package app.framework.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * <p>
 * 前端全局配置。
 * </p>
 *
 * @author mh.z
 */
@Component
public class FrontGlobalConfig {

    /** 前端资源(非静态资源)的路径 */
    @Value("${app.web-front.resourceLocation:classpath:/web-front/app/}")
    private String resourceLocation;

    /** 是否缓存前端资源(非静态资源) */
    @Value("${app.web-front.resourceCached:true}")
    private Boolean resourceCached;

    /** 页面配置文件的匹配表达式 */
    @Value("${app.web-front.pageConfigLocationPattern:classpath:/web-front/app/**/*.conf.json}")
    private String pageConfigLocationPattern;

    /** 多语言资源文件的匹配表达式  */
    @Value("${app.web-front.i18nResourceLocationPattern:classpath:/web-front/app/**/*.i18n.properties}")
    private String i18nResourceLocationPattern;

    /** 是否显示开发工具 */
    @Value("${app.web-front.showDevTools:false}")
    private Boolean showDevTools;

    /** URL 映射规则的配置路径 */
    @Value("${app.web-front.urlMappingRulesConfigPath:classpath:/config/urlMappingRules.json}")
    private String urlMappingRulesConfigPath;

    /** 页面占位符的配置路径 */
    @Value("${app.web-front.pagePlaceholdersConfigPath:classpath:/web-front/config/pagePlaceholders.json}")
    private String pagePlaceholdersConfigPath;

    /** 是否启用 CSRF 令牌 */
    @Value("${app.web-front.csrfToken.enabled:true}")
    private Boolean csrfTokenEnabled;

    /** 自定义 CSRF 摘要盐值 */
    @Value("${app.web-front.csrfToken.salt:}")
    private String csrfTokenSalt;

    /** 是否启用验证码 */
    @Value("${app.web-front.captcha.enabled:false}")
    private Boolean captchaEnabled;

    public String getResourceLocation() {
        return resourceLocation;
    }

    public Boolean getResourceCached() {
        return resourceCached;
    }

    public String getPageConfigLocationPattern() {
        return pageConfigLocationPattern;
    }

    public String getI18nResourceLocationPattern() {
        return i18nResourceLocationPattern;
    }

    public Boolean getShowDevTools() {
        return showDevTools;
    }

    public String getUrlMappingRulesConfigPath() {
        return urlMappingRulesConfigPath;
    }

    public String getPagePlaceholdersConfigPath() {
        return pagePlaceholdersConfigPath;
    }

    public Boolean getCsrfTokenEnabled() {
        return csrfTokenEnabled;
    }

    public String getCsrfTokenSalt() {
        return csrfTokenSalt;
    }

    public Boolean getCaptchaEnabled() {
        return captchaEnabled;
    }

}
